package com.zastoupil.pgc.blueprint_pattern.xml;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;

/**
 * <p>
 * A Property object is used to define a property type and value for a
 * {@link Blueprint} or a {@link Modifier} object. Both are represented as
 * String objects and are extremely flexible. Depending on the implemented
 * parser, these fields can be used to represent complex expressions that
 * include variable calls, nested Blueprint and Factory objects, and more.
 * </p>
 * <p>
 * In order to format and implement Property <code>type</code> and
 * <code>value</code> strings correctly, see the associated parser for more
 * info.
 * </p>
 * 
 * @author Peter Zastoupil
 * 
 */
@XmlRootElement(name = "property")
@XmlType(propOrder = { "type", "value" })
public class Property {

	private String type;

	private String value;

	public String getType() {
		return type;
	}

	@XmlElement(name = "type")
	public void setType(String type) {
		this.type = type;
	}

	public String getValue() {
		return value;
	}

	@XmlElement(name = "value")
	public void setValue(String value) {
		this.value = value;
	}

}
